1. Field of the Invention
This invention relates generally to computer software licensing, and more particularly to the management and enforcement of floating licenses of computer applications.
2. Discussion of the Related Art
Many computer software applications are subject to electronic software licenses which determine a user""s right to use the particular application. An electronic software license serves the dual purpose of: 1) allowing access to the software by the licensed user; and 2) allowing the software vendor to control how much the application is used and to ensure that only authorized users have access to the application.
In the case of a network computer system, there may be many users with potential access to the application. In this case, the software license must be able to grant access to authorized users who require access, while preventing access by unauthorized users.
There are three licensing models commonly used: node-lock licenses; concurrent floating licenses; and usage-based licenses. Each model is discussed below in greater detail.
A node-lock license is the simplest of the three models, and also the most inflexible. A node-lock license is tied to a particular host by information that is unique to that host. This information (by which the license is tied to the particular host) often includes the host""s ethernet address or the serial number of one of the host""s hard drives. The licensed application cannot be moved to another host without contacting the software vendor and acquiring another node-lock license for the new host. Due to the relative simplicity of the node-lock license, license system failures rarely occur. Due to the inflexibility of the node-lock license, there is no leniency in enforcing the license. Either the host has a license, and therefore access to the application, or it does not.
A concurrent floating license, on the other hand, is much more flexible and at the same time much more complex. With a concurrent floating license, any host connected to the network can request a license. The increased complexity of the concurrent floating license means that the acquisition of a licensed application can be hindered, either by faults related to the additional processes involved in the acquisition of the license or by any network faults that may occur. If any of these faults occur while the license is being requested, the user may not be granted a license. In such a case, the application determines whether, in this situation, the failed license acquisition requires a denial of service to the user or if the application is allowed to be used without the required license. The software vendor typically programs the software to determine in what circumstances access will be granted or denied.
A usage-based license differs from the node-lock license and the concurrent floating license in that it does not license a software application as a whole. The usage-based license monitors the amount that the licensed application is actually used and presents the user with a bill at regular intervals. Usage-based licenses record the amount of usage and generally report the usage to a central billing system. Network and license system faults do not pose an obstacle to the user of the application since access to the application is always granted. However, this type of licensing poses problems for the software vendor who must control use of the application.
The type of license used may be extremely important, especially when the application is a xe2x80x9cmission-criticalxe2x80x9d application. A mission-critical application is indispensable to the user, such that any downtime of the application is not tolerable. An example of a mission-critical application is a network management system. A network management system (NMS) is responsible for monitoring an organization""s computer network and diagnosing the origin of any faults that may occur in the network. Such a network is illustrated in FIG. 1, which shows a network management server 300 which monitors and controls a number of interconnected network devices D. Since many organizations depend on computer networks to transact business, and/or for research and development, the accessibility of the network is critical to the survival of the organization. A failure to access the NMS, such as during a license system fault, could be catastrophic to the organization. Therefore, the NMS must always be accessible to the network manager, even in the event of a license system failure.
Enforcement of concurrent floating licenses is conventionally done according to two different enforcement strategies commonly referred to as xe2x80x9cstrict enforcementxe2x80x9d and xe2x80x9cabsolute leniencyxe2x80x9d. Strict enforcement means that, at any time, if the concurrent floating license fails, the user is denied access to the software application. As discussed above, in the case of a critical application where access to the software application is essential to the welfare of the user""s business, strict enforcement is unacceptable as downtime (due to a licensing system fault) is intolerable.
Absolute leniency allows the user access to the software application during periods of license system fault. Absolute leniency has the potential to allow a software vendor to grant access during software or network faults, but deny access when the amount of authorized licenses is exceeded. However, it is difficult, if not impossible, to determine if a license system fault is one where the user should be granted leniency (access), or if the license system fault is due to overuse of the software application license.
While uninterrupted accessibility of a licensed critical application is crucial to the user, the software vendor who licenses the application has an interest in policing use of the application to insure against unauthorized users. Absolute leniency is unacceptable to the software vendor because it is impossible to control the number of users who have access. Such leniency defeats the purpose of a license, which is to control unauthorized use of the software application.
Therefore, to protect the rights of both the user and the vendor in the case of a license system fault, a compromise between strict enforcement and absolute leniency is desired. Such a compromise should provide leniency to allow mission-critical applications to continue operating until the license system fault is corrected. At the same time, the software vendor""s interest in protecting its software from unauthorized use must be addressed.
According to the invention, a system is provided which solves the problems discussed above. The system enables a licensed user to accumulate time-based usage credit while a critical application is in use under a license. In the event of a license system fault, the application remains accessible to the user, while consuming the usage credit which was previously accumulated. This allows the user access to the application while the license system fault is being corrected. If the license system fault is corrected before all of the accumulated usage credit is consumed, the application remains accessible to the user under the license and the user resumes accumulating usage credit. If the license system fault is not corrected before all of the accumulated usage credit is consumed, the application is terminated. Therefore, the present invention allows the authorized user to consume its accumulated usage credit to bridge the time between when a license system fault occurs and when the fault is corrected, thereby protecting the rights of the user. At the same time, the invention prevents any unlicensed users from accessing the application during license system faults, thereby protecting the rights of the vendor.
According to one embodiment of the invention, a method of enforcing a floating license of a computer software application is provided, the method including the steps of accumulating credit while using the application under a first condition and consuming the accumulated credit while using the application under a second condition different than the first condition. The first condition comprises use of the application when the license is valid, and the second condition comprises use of the application when the license is invalid, such as during a license system fault. During the accumulating step, credit is accumulated at a predetermined accumulation rate. During the consuming step, the accumulated credit is consumed at a predetermined consumption rate. The consumption rate is adjustable within a first range when the application is in use, and adjustable within a second range when the application is not in use.
According to another embodiment of the invention, a method for managing the enforcement of a floating license of a computer application is provided, the method including the steps of accumulating usage credit while the application is being used while the floating license is valid, and consuming the usage credit at a first rate while the application is being used while the floating license is invalid.
According to another embodiment of the invention, a system for managing the enforcement of a floating license for a computer application is provided. The system includes a device for accumulating usage credit while the application is being used while the floating license is valid, and a device for consuming the usage credit while the application is being used while the floating license is invalid.
According to yet another embodiment of the invention, a computer program product comprises a computer-readable medium having a computer program logic thereon for enabling a processor in a computer system to manage the enforcement of a license of a software application. The product includes means for providing a finite grace period to operate the software application when the license is invalid, wherein the length of the finite grace period is proportional to the length of operation of the software application while the license is valid. The product further comprises means for terminating the software application when the finite grace period expires.
According to yet another embodiment of the invention, a system is provided for managing leniency in the enforcement of a floating license for a computer application, the system including an accumulation device which accumulates usage credit while the application is being used while said floating license is valid, a consumption device which consumes the usage credit while the application is used while the floating license is invalid and a controller which controls operation of the accumulation device and the consumption device.
These and other features of the present invention will be more particularly understood from the following detailed description.